home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / G-Games / (c)gb.d64 / twin bagels.c (.txt) < prev   
Commodore BASIC  |  2007-02-04  |  3KB  |  100 lines

  1. 3 REM *********************************
  2. 4 REM * MODIFIED SLIGHTLY AT 0223H ON *
  3. 5 REM *    APRIL THE 5TH, 1985 BY     *
  4. 6 REM *        DAVID BRADLEY          *
  5. 7 REM *********************************
  6. 90 POKE53280,6:POKE53281,14:PRINT"[144]"
  7. 100 PRINT"[147] BAGELS       JIM BUTTERFIELD"
  8. 110 INPUT"WANT INSTRUCTIONS";Z$:IFASC(Z$)=78GOTO280
  9. 120 PRINT"A GUESSING GAME BASED ON SECRET CODES:"
  10. 130 PRINT"  YOU THINK UP A SECRET CODE OF"
  11. 140 PRINT"    4 LETTERS, EACH A[146] TO F[146]..."
  12. 150 PRINT"  ..AND I'LL THINK OF ONE, TOO"
  13. 160 PRINT"WE EACH TAKE TURNS GUESSING THE OTHER'S"
  14. 170 PRINT"CODE.  ON EACH GUESS WE'LL BE TOLD:"
  15. 180 PRINT"  --EXACT MATCHES; GUESSING THE RIGHT"
  16. 190 PRINT"    LETTER IN THE RIGHT PLACE;
  17. 200 [153]"  --OTHER MATCHES; THE RIGHT LETTER,"
  18. 210 [153]"    BUT IN THE WRONG PLACE.
  19. 220 PRINT"COUNT CAREFULLY, AND DON'T FORGET TO"
  20. 230 PRINT"ALLOW FOR DUPLICATE LETTERS:"
  21. 240 PRINT"  E.G., IF MY SECRET CODE IS 'FAFD'AND"
  22. 250 PRINT"    YOU GUESS 'FADE', YOU'LL GET"
  23. 260 PRINT"      2 EXACT (THE F AND THE A)"
  24. 270 PRINT"      1 MATCH (THE D)."
  25. 280 DIMC$(6),M(4,10),R(2,10),T(4),Z(1,4),G(4),S(4)
  26. 290 J=RND(-TI)
  27. 300 FORJ=1TO4:T(J)=1:S(J)=INT(RND(1)*6+1):NEXT
  28. 310 INPUT"HAVE YOU THOUGHT OF A SECRET CODE";Z$
  29. 320 FORJ=1TO6:C$(J)=CHR$(J+64):NEXT
  30. 330 FORJ=1TO6:K=INT(RND(1)*6)+1:C$=C$(J):C$(J)=C$(K):C$(K)=C$:NEXTJ
  31. 340 PRINT"[147]----- YOUR -------      --- MY -----"
  32. 350 PRINT"GUESS  EXACT MATCH     GUESS EXA MAT"
  33. 360 FORJ=1TO10
  34. 370 FORJ1=1TO4:PRINT"[166][157]";
  35. 380 GETZ$:IFZ$=""GOTO380
  36. 390 Z=ASC(Z$):IFZ<65ORZ>70GOTO380
  37. 400 PRINTZ$;:G(J1)=Z-64:NEXTJ1
  38. 410 G1=0:FORJ1=1TO4:Z(0,J1)=0:Z(1,J1)=-1:IFG(J1)=S(J1)THENG1=G1+1:GOTO430
  39. 420 Z(0,J1)=G(J1):Z(1,J1)=S(J1)
  40. 430 NEXTJ1:PRINT"   ";G1;:IFG1=4THENPRINT:GOTO770
  41. 440 G1=0:FORJ1=1TO4:FORK1=1TO4
  42. 450 IFZ(0,J1)=Z(1,K1)THENZ(0,J1)=.1:Z(1,K1)=.2:G1=G1+1
  43. 460 NEXTK1,J1:PRINT"   ";G1;"";TAB(23);
  44. 470 IFJ=1THENFORK=1TO4:M(K,J)=K-1:NEXTK:M(1,1)=1:GOTO640
  45. 480 FORJ1=J-1TO1STEP-1
  46. 490 G1=R(1,J1):G2=0
  47. 500 FORK1=1TO4
  48. 510 IFT(K1)=M(K1,J1)THENG2=G2+1:IFG2>G1GOTO 730
  49. 520 NEXTK1:K1=K1-1:IFG2<>G1GOTO 730
  50. 530 NEXTJ1
  51. 540 FORJ1=J-1TO1STEP-1
  52. 550 G1=R(2,J1)
  53. 560 FORX=1TO4
  54. 570 Z(0,X)=0:Z(1,X)=-1:IFT(X)<>M(X,J1)THENZ(0,X)=T(X):Z(1,X)=M(X,J1)
  55. 580 NEXTX
  56. 590 G2=0:FORX=1TO4:FORY=1TO4:IFZ(0,X)<>Z(1,Y)GOTO620
  57. 600 G2=G2+1:IFG2>G1GOTO 730
  58. 610 Z(0,X)=.5:Z(1,Y)=.9
  59. 620 NEXTY,X:IFG1<>G2GOTO 730
  60. 630 NEXTJ1:FORX=1TO4:M(X,J)=T(X):NEXT
  61. 640 FORK=1TO4:PRINTC$(M(K,J));:NEXTK:PRINT"[146]   [166][157]";
  62. 650 GETZ$:IFZ$=""GOTO650
  63. 660 Z=ASC(Z$):IFZ<48ORZ>52GOTO650
  64. 670 R(2,J)=0:R(1,J)=Z-48:PRINTZ$;"   [166][157]";:IFR(1,J)=4GOTO970
  65. 680 IFR(1,J)=3THENGOTO710
  66. 690 GETZ$:IFZ$=""GOTO690
  67. 700 Z=ASC(Z$):R(2,J)=Z-48:IFZ<48ORZ>52GOTO690
  68. 710 PRINTCHR$(R(2,J)+48)
  69. 720 NEXTJ
  70. 730 IFK1<>4THENFORK2=K1+1TO4:T(K2)=1:NEXTK2
  71. 740 T(K1)=T(K1)+1:IFT(K1)>6THENT(K1)=1:K1=K1-1:PRINTCHR$(K1+58);"[157]";:GOTO 740
  72. 750 IFK1<>0GOTO480
  73. 760 PRINT:PRINT"I GIVE UP!  ";
  74. 770 INPUT"WHAT WAS YOUR CODE";Z$
  75. 780 IFLEN(Z$)<>4THENZ$=Z$+" ISN'T 4 CHARACTERS!":GOTO 960
  76. 790 FORJ1=1TO4:X$=MID$(Z$,J1,1):FORK=1TO6:IFX$=C$(K)GOTO 810
  77. 800 NEXTK:Z$=X$+" ISN'T A LEGAL LETTER!":GOTO 960
  78. 810 T(J1)=K:NEXTJ1
  79. 820 FORJ1=1TOJ-1
  80. 830 G1=0:G2=0:FORK=1TO4
  81. 840 Z(0,K)=0:Z(1,K)=-1:IFT(K)=M(K,J1)THENG1=G1+1:GOTO 860
  82. 850 Z(0,K)=T(K):Z(1,K)=M(K,J1)
  83. 860 NEXTK:FORK=1TO4:FORX=1TO4:IFZ(0,K)=Z(1,X)THENG2=G2+1:Z(0,K)=0:Z(1,X)=-1
  84. 870 NEXTX,K
  85. 880 IFG1<>R(1,J1)ORG2<>R(2,J1)GOTO 900
  86. 890 NEXTJ1:GOTO1020
  87. 900 PRINT" JUST A DARNED MINUTE! "
  88. 910 PRINT"ON GUESS #";J1;"YOU SAID THAT MY"
  89. 920 PRINT"'";:FORK=1TO4:PRINTC$(M(K,J1));:NEXTK
  90. 930 PRINT"' COUNTED";R(1,J1);"AND";R(2,J1)
  91. 940 PRINT"I GET";G1;"[157] AND";G2
  92. 950 GOTO 990
  93. 960 PRINT"HEY--";Z$:GOTO 990
  94. 970 PRINT "HOORAY!"
  95. 980 PRINT"MY CODE WAS '";:FORJ=1TO4:PRINTCHR$(S(J)+64);:NEXTJ:PRINT"'"
  96. 990 INPUT"ANOTHER ONE";Z$
  97. 1000 IFASC(Z$)<>78GOTO300
  98. 1010 END
  99. 1020 PRINT"*** YOU WIN THIS ONE ***":GOTO990
  100.